 /*
CryptoJS v3.0.2
code.google.com/p/crypto-js
(c) 2009-2012 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
var CryptoJS = CryptoJS || function(h, o) {
    var f = {}, j = f.lib = {}, k = j.Base = function() {
        function a() {
        }
        return {extend: function(b) {
                a.prototype = this;
                var c = new a;
                b && c.mixIn(b);
                c.$super = this;
                return c
            },create: function() {
                var a = this.extend();
                a.init.apply(a, arguments);
                return a
            },init: function() {
            },mixIn: function(a) {
                for (var c in a)
                    a.hasOwnProperty(c) && (this[c] = a[c]);
                a.hasOwnProperty("toString") && (this.toString = a.toString)
            },clone: function() {
                return this.$super.extend(this)
            }}
    }(), i = j.WordArray = k.extend({init: function(a, b) {
            a = 
            this.words = a || [];
            this.sigBytes = b != o ? b : 4 * a.length
        },toString: function(a) {
            return (a || p).stringify(this)
        },concat: function(a) {
            var b = this.words, c = a.words, d = this.sigBytes, a = a.sigBytes;
            this.clamp();
            if (d % 4)
                for (var e = 0; e < a; e++)
                    b[d + e >>> 2] |= (c[e >>> 2] >>> 24 - 8 * (e % 4) & 255) << 24 - 8 * ((d + e) % 4);
            else if (65535 < c.length)
                for (e = 0; e < a; e += 4)
                    b[d + e >>> 2] = c[e >>> 2];
            else
                b.push.apply(b, c);
            this.sigBytes += a;
            return this
        },clamp: function() {
            var a = this.words, b = this.sigBytes;
            a[b >>> 2] &= 4294967295 << 32 - 8 * (b % 4);
            a.length = h.ceil(b / 4)
        },clone: function() {
            var a = 
            k.clone.call(this);
            a.words = this.words.slice(0);
            return a
        },random: function(a) {
            for (var b = [], c = 0; c < a; c += 4)
                b.push(4294967296 * h.random() | 0);
            return i.create(b, a)
        }}), l = f.enc = {}, p = l.Hex = {stringify: function(a) {
            for (var b = a.words, a = a.sigBytes, c = [], d = 0; d < a; d++) {
                var e = b[d >>> 2] >>> 24 - 8 * (d % 4) & 255;
                c.push((e >>> 4).toString(16));
                c.push((e & 15).toString(16))
            }
            return c.join("")
        },parse: function(a) {
            for (var b = a.length, c = [], d = 0; d < b; d += 2)
                c[d >>> 3] |= parseInt(a.substr(d, 2), 16) << 24 - 4 * (d % 8);
            return i.create(c, b / 2)
        }}, n = l.Latin1 = {stringify: function(a) {
            for (var b = 
            a.words, a = a.sigBytes, c = [], d = 0; d < a; d++)
                c.push(String.fromCharCode(b[d >>> 2] >>> 24 - 8 * (d % 4) & 255));
            return c.join("")
        },parse: function(a) {
            for (var b = a.length, c = [], d = 0; d < b; d++)
                c[d >>> 2] |= (a.charCodeAt(d) & 255) << 24 - 8 * (d % 4);
            return i.create(c, b)
        }}, q = l.Utf8 = {stringify: function(a) {
            try {
                return decodeURIComponent(escape(n.stringify(a)))
            } catch (b) {
                throw Error("Malformed UTF-8 data");
            }
        },parse: function(a) {
            return n.parse(unescape(encodeURIComponent(a)))
        }}, m = j.BufferedBlockAlgorithm = k.extend({reset: function() {
            this._data = i.create();
            this._nDataBytes = 0
        },_append: function(a) {
            "string" == typeof a && (a = q.parse(a));
            this._data.concat(a);
            this._nDataBytes += a.sigBytes
        },_process: function(a) {
            var b = this._data, c = b.words, d = b.sigBytes, e = this.blockSize, f = d / (4 * e), f = a ? h.ceil(f) : h.max((f | 0) - this._minBufferSize, 0), a = f * e, d = h.min(4 * a, d);
            if (a) {
                for (var g = 0; g < a; g += e)
                    this._doProcessBlock(c, g);
                g = c.splice(0, a);
                b.sigBytes -= d
            }
            return i.create(g, d)
        },clone: function() {
            var a = k.clone.call(this);
            a._data = this._data.clone();
            return a
        },_minBufferSize: 0});
    j.Hasher = m.extend({init: function() {
            this.reset()
        },
        reset: function() {
            m.reset.call(this);
            this._doReset()
        },update: function(a) {
            this._append(a);
            this._process();
            return this
        },finalize: function(a) {
            a && this._append(a);
            this._doFinalize();
            return this._hash
        },clone: function() {
            var a = m.clone.call(this);
            a._hash = this._hash.clone();
            return a
        },blockSize: 16,_createHelper: function(a) {
            return function(b, c) {
                return a.create(c).finalize(b)
            }
        },_createHmacHelper: function(a) {
            return function(b, c) {
                return r.HMAC.create(a, c).finalize(b)
            }
        }});
    var r = f.algo = {};
    return f
}(Math);


/*
CryptoJS v3.0.2
code.google.com/p/crypto-js
(c) 2009-2012 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
(function() {
    var h = CryptoJS, i = h.lib.WordArray;
    h.enc.Base64 = {stringify: function(b) {
            var e = b.words, f = b.sigBytes, c = this._map;
            b.clamp();
            for (var b = [], a = 0; a < f; a += 3)
                for (var d = (e[a >>> 2] >>> 24 - 8 * (a % 4) & 255) << 16 | (e[a + 1 >>> 2] >>> 24 - 8 * ((a + 1) % 4) & 255) << 8 | e[a + 2 >>> 2] >>> 24 - 8 * ((a + 2) % 4) & 255, g = 0; 4 > g && a + 0.75 * g < f; g++)
                    b.push(c.charAt(d >>> 6 * (3 - g) & 63));
            if (e = c.charAt(64))
                for (; b.length % 4; )
                    b.push(e);
            return b.join("")
        },parse: function(b) {
            var b = b.replace(/\s/g, ""), e = b.length, f = this._map, c = f.charAt(64);
            c && (c = b.indexOf(c), -1 != c && (e = c));
            for (var c = [], a = 0, d = 0; d < e; d++)
                if (d % 4) {
                    var g = f.indexOf(b.charAt(d - 1)) << 2 * (d % 4), h = f.indexOf(b.charAt(d)) >>> 6 - 2 * (d % 4);
                    c[a >>> 2] |= (g | h) << 24 - 8 * (a % 4);
                    a++
                }
            return i.create(c, a)
        },_map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}
})();
/**
 * BASE64加密↓
 * @param value
 * @return
 */
function base64_encode(value) {
    try {
        var str = CryptoJS.enc.Utf8.parse(value);
        var base64 = CryptoJS.enc.Base64.stringify(str);
        return base64;
    } catch (e) {
        return value;
    }
    //jQuery("#result").val(base64);
}
/***
 * BASE64解密
 * @param value
 * @return
 */
function base64_decode(value) {
    try {
        var words = CryptoJS.enc.Base64.parse(value);
        return words.toString(CryptoJS.enc.Utf8);
    } catch (e) {
        return value;
    }
    //jQuery("#content").val(words.toString(CryptoJS.enc.Utf8));
}